package com.yayan.util;

import java.io.File;
import java.io.IOException;
import java.text.SimpleDateFormat;
import java.util.Date;

import javax.servlet.http.HttpServletRequest;

import org.apache.commons.io.FilenameUtils;
import org.springframework.web.multipart.MultipartFile;

import com.alibaba.fastjson.JSONObject;

public class UploadUtil {

	public static boolean uploadPic(MultipartFile pic, String path)
			throws IllegalStateException, IOException {
		try{
			// 图片上传的绝对路径
			String url = path;			
			//System.out.println(url);
			File dir = new File(url);			
			if(!dir.exists()) {
				dir.mkdirs();				
			}				
			// 上传图片
			pic.transferTo(new File(url));
			return true;
		}catch(Exception e){
			return false;
		}
	}
	
	public static boolean checkExtention(MultipartFile pic){		
		// 获取图片原始文件名
		String originalFilename = pic.getOriginalFilename();					
		// 获取上传图片的扩展名(jpg/png/...)
		String extension = FilenameUtils.getExtension(originalFilename);		
		if(extension.equalsIgnoreCase("jpg") || extension.equalsIgnoreCase("png") || extension.equalsIgnoreCase("jpeg")){
			return true;
		}
		return false;
	}
	
	public static JSONObject uploadPic(MultipartFile pic, HttpServletRequest request)
			throws IllegalStateException, IOException {
		try {
			// 获取图片原始文件名
			String originalFilename = pic.getOriginalFilename();
			
			JSONObject jsonObject = new JSONObject();
			
			// 文件名使用当前时间
			String name = new SimpleDateFormat("yyyyMMddHHmmssSSS").format(new Date());
			// 获取上传图片的扩展名(jpg/png/...)
			String extension = FilenameUtils.getExtension(originalFilename);
			if(pic.getSize() >= 5242880){
				jsonObject.put("status", false);
				jsonObject.put("msg", "图片大小不能超过5M");
			}else if(extension.equalsIgnoreCase("jpg") || extension.equalsIgnoreCase("png")
				|| extension.equalsIgnoreCase("jpeg")){
				// 图片上传的相对路径（因为相对路径放到页面上就可以显示图片）
				String path = "upload/" + name + "." + extension;
				// 图片上传的绝对路径
				String url = request.getSession().getServletContext().getRealPath("") + path;
				
				File dir = new File(url);
				if(!dir.exists()) {
					dir.mkdirs();
				}
				
				// 上传图片
				pic.transferTo(new File(url));
				
				jsonObject.put("status", true);
				// 将图片路径回传到浏览器
				jsonObject.put("msg", path);				
			}else{
				//图片格式不正确，返回提示信息
				jsonObject.put("status", false);
				jsonObject.put("msg", "上传图片格式必须是jpg/png/jpeg");
			}
			return jsonObject;
		} catch (Exception e) {
			throw new RuntimeException("服务器繁忙，上传图片失败");
		}
	}
}
